iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
AI & Data

tinyML這個球不是這麼踢滴系列 第 6

【Day 06】tinyML基本開發步驟認識

  • 分享至 

  • xImage
  •  

目前tinyML基金會並沒有強制規範何種規格的硬體、AI框架、模型大小(複雜度)、推論速度等才算符合,而功率消耗上本來是希望在1mW(毫瓦)以下,後來變成mW(1W以下)等級,現在連樹莓派或Nvidia Jetson Nano 5~15W都可算在其中。所以換句話說能拿在手上,用電池(或行動電源)供電並能長時間運行的邊緣智能裝置都算tinyML的範圍,因此大家也不用太計較。

前面已簡單準備好的tinyML的球(開發板)和奪命香雞腿[大力金鋼腿](Arduino IDE軟體開發平台),接下來就要開始了解如何踢球,就是tinyML (MCU AI) 開發的開發步驟。


Fig. 1 AI產品開發流程圖

問題設定

首先要先定義好待解決的應用問題類型,才能有效決定出後續要處理的工作細項。其類型主要分為電腦視覺(Computer Vision, CV)、自然語言處理(Natural Language Processing, NLP)和數據分析(Data Analytics),其中最後一項亦可看作從大量感測器所收集到的資料處理、分析、預測。在電腦視覺類問題,常見有影像分類、物件偵測、影像分割(語義分割、實例分割、全景分割)、姿態估測(人體骨架分析、動作分析)等。而自然語言處理問題,常見的有語音轉文字、語調(情緒)分析、語言(意圖)理解、文字轉語音等自然對話情境。而數據分析問題,通常也是智慧物聯網(AIoT)最常會遇到的問題,包括聚類、時序預測等。

資料建立

問題設定好就要開始收集及標註資料,依不同類型可能有影像、影片、聲音、文字、序列資料等型態資料。有些學術單位會提供公開資料集方便大家測試和實作使用,如ImageNet, Microsof COCO, Paper with Code, Kaggle等。當然遇到不在公開資料集內容的,就要靠自己收集。再來依不同資料型態,可利用如LabelImg, LabelMe, CVAT, SuperAnnotation等開源或商用軟體來進行標註工作。以影像標註為例,又可分內容及外形(如點、線、框、曲線、超像素等)。

建模推論

和公開資料集類似,也有很多常用模型會被開源,直接拿來就可使用,也不用重新訓練。但有時沒有可用的,或資料型態特別,需要自己開發時,則需使用像 TensorFlow, PyTorch, ONNX, MXNet, Caffe等框架進行開發。而工程師再花許多時間來訓練模型和調整參數,以求推論達到最高效率、精準度最優結果。

部署優化

最後是邊緣智能產品的重頭戲,包含數值量化、模型剪枝(合併)、模型壓縮及知識蒸餾,來協助把模型變小,但推論精準度不減或只減很少,同時提升執行速度。這部份對於tinyML(MCU AI)是重中之重,能不能把訓練好的大模型塞到實體MCU中就是最大的挑戰,這部份後面會再詳述。

小結

今天先簡單建立一個AI產品開發流程的概念,後面會再展開細講,敬請期待。

ps. 為讓文章更活潑傳達硬梆梆的技術內容,所以引用了經典電影「少林足球」的橋段,在此對星爺及電影公司致上崇高的敬意,希望小弟戲劇性的二創不會引起電影公司的不悅,敬請見諒。


上一篇
【Day 05】連上XIAO nRF52840 Sense tinyML開發板
下一篇
【Day07】對不起各位我要先歇一會兒了
系列文
tinyML這個球不是這麼踢滴7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言